/*! nanoScrollerJS - v0.8.7 - (c) 2015 James Florentino; Licensed MIT */ !(function (a) { return "function" == typeof define && define.amd ? define(["jquery"], function (b) { return a(b, window, document); }) : "object" == typeof exports ? (module.exports = a(require("jquery"), window, document)) : a(jQuery, window, document); })(function (a, b, c) { "use strict"; var d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H; (z = { paneClass: "nano-pane", sliderClass: "nano-slider", contentClass: "nano-content", enabledClass: "has-scrollbar", flashedClass: "flashed", activeClass: "active", iOSNativeScrolling: !1, preventPageScrolling: !1, disableResize: !1, alwaysVisible: !1, flashDelay: 1500, sliderMinHeight: 20, sliderMaxHeight: null, documentContext: null, windowContext: null, }), (u = "scrollbar"), (t = "scroll"), (l = "mousedown"), (m = "mouseenter"), (n = "mousemove"), (p = "mousewheel"), (o = "mouseup"), (s = "resize"), (h = "drag"), (i = "enter"), (w = "up"), (r = "panedown"), (f = "DOMMouseScroll"), (g = "down"), (x = "wheel"), (j = "keydown"), (k = "keyup"), (v = "touchmove"), (d = "Microsoft Internet Explorer" === b.navigator.appName && /msie 7./i.test(b.navigator.appVersion) && b.ActiveXObject), (e = null), (D = b.requestAnimationFrame), (y = b.cancelAnimationFrame), (F = c.createElement("div").style), (H = (function () { var a, b, c, d, e, f; for (d = ["t", "webkitT", "MozT", "msT", "OT"], a = e = 0, f = d.length; f > e; a = ++e) if (((c = d[a]), (b = d[a] + "ransform"), b in F)) return d[a].substr(0, d[a].length - 1); return !1; })()), (G = function (a) { return H === !1 ? !1 : "" === H ? a : H + a.charAt(0).toUpperCase() + a.substr(1); }), (E = G("transform")), (B = E !== !1), (A = function () { var a, b, d; return ( (a = c.createElement("div")), (b = a.style), (b.position = "absolute"), (b.width = "100px"), (b.height = "100px"), (b.overflow = t), (b.top = "-9999px"), c.body.appendChild(a), (d = a.offsetWidth - a.clientWidth), c.body.removeChild(a), d ); }), (C = function () { var a, c, d; return ( (c = b.navigator.userAgent), (a = /(?=.+Mac OS X)(?=.+Firefox)/.test(c)) ? ((d = /Firefox\/\d{2}\./.exec(c)), d && (d = d[0].replace(/\D+/g, "")), a && +d > 23) : !1 ); }), (q = (function () { function j(d, f) { (this.el = d), (this.options = f), e || (e = A()), (this.$el = a(this.el)), (this.doc = a(this.options.documentContext || c)), (this.win = a(this.options.windowContext || b)), (this.body = this.doc.find("body")), (this.$content = this.$el.children("." + this.options.contentClass)), this.$content.attr("tabindex", this.options.tabIndex || 0), (this.content = this.$content[0]), (this.previousPosition = 0), this.options.iOSNativeScrolling && null != this.el.style.WebkitOverflowScrolling ? this.nativeScrolling() : this.generate(), this.createEvents(), this.addEvents(), this.reset(); } return ( (j.prototype.preventScrolling = function (a, b) { if (this.isActive) if (a.type === f) ((b === g && a.originalEvent.detail > 0) || (b === w && a.originalEvent.detail < 0)) && a.preventDefault(); else if (a.type === p) { if (!a.originalEvent || !a.originalEvent.wheelDelta) return; ((b === g && a.originalEvent.wheelDelta < 0) || (b === w && a.originalEvent.wheelDelta > 0)) && a.preventDefault(); } }), (j.prototype.nativeScrolling = function () { this.$content.css({ WebkitOverflowScrolling: "touch" }), (this.iOSNativeScrolling = !0), (this.isActive = !0); }), (j.prototype.updateScrollValues = function () { var a, b; (a = this.content), (this.maxScrollTop = a.scrollHeight - a.clientHeight), (this.prevScrollTop = this.contentScrollTop || 0), (this.contentScrollTop = a.scrollTop), (b = this.contentScrollTop > this.previousPosition ? "down" : this.contentScrollTop < this.previousPosition ? "up" : "same"), (this.previousPosition = this.contentScrollTop), "same" !== b && this.$el.trigger("update", { position: this.contentScrollTop, maximum: this.maxScrollTop, direction: b, }), this.iOSNativeScrolling || ((this.maxSliderTop = this.paneHeight - this.sliderHeight), (this.sliderTop = 0 === this.maxScrollTop ? 0 : (this.contentScrollTop * this.maxSliderTop) / this.maxScrollTop)); }), (j.prototype.setOnScrollStyles = function () { var a; B ? ((a = {}), (a[E] = "translate(0, " + this.sliderTop + "px)")) : (a = { top: this.sliderTop }), D ? (y && this.scrollRAF && y(this.scrollRAF), (this.scrollRAF = D( (function (b) { return function () { return (b.scrollRAF = null), b.slider.css(a); }; })(this) ))) : this.slider.css(a); }), (j.prototype.createEvents = function () { this.events = { down: (function (a) { return function (b) { return ( (a.isBeingDragged = !0), (a.offsetY = b.pageY - a.slider.offset().top), a.slider.is(b.target) || (a.offsetY = 0), a.pane.addClass(a.options.activeClass), a.doc.bind(n, a.events[h]).bind(o, a.events[w]), a.body.bind(m, a.events[i]), !1 ); }; })(this), drag: (function (a) { return function (b) { return ( (a.sliderY = b.pageY - a.$el.offset().top - a.paneTop - (a.offsetY || 0.5 * a.sliderHeight)), a.scroll(), a.contentScrollTop >= a.maxScrollTop && a.prevScrollTop !== a.maxScrollTop ? a.$el.trigger("scrollend") : 0 === a.contentScrollTop && 0 !== a.prevScrollTop && a.$el.trigger("scrolltop"), !1 ); }; })(this), up: (function (a) { return function (b) { return ( (a.isBeingDragged = !1), a.pane.removeClass(a.options.activeClass), a.doc.unbind(n, a.events[h]).unbind(o, a.events[w]), a.body.unbind(m, a.events[i]), !1 ); }; })(this), resize: (function (a) { return function (b) { a.reset(); }; })(this), panedown: (function (a) { return function (b) { return ( (a.sliderY = (b.offsetY || b.originalEvent.layerY) - 0.5 * a.sliderHeight), a.scroll(), a.events.down(b), !1 ); }; })(this), scroll: (function (a) { return function (b) { a.updateScrollValues(), a.isBeingDragged || (a.iOSNativeScrolling || ((a.sliderY = a.sliderTop), a.setOnScrollStyles()), null != b && (a.contentScrollTop >= a.maxScrollTop ? (a.options.preventPageScrolling && a.preventScrolling(b, g), a.prevScrollTop !== a.maxScrollTop && a.$el.trigger("scrollend")) : 0 === a.contentScrollTop && (a.options.preventPageScrolling && a.preventScrolling(b, w), 0 !== a.prevScrollTop && a.$el.trigger("scrolltop")))); }; })(this), wheel: (function (a) { return function (b) { var c; if (null != b) return ( (c = b.delta || b.wheelDelta || (b.originalEvent && b.originalEvent.wheelDelta) || -b.detail || (b.originalEvent && -b.originalEvent.detail)), c && (a.sliderY += -c / 3), a.scroll(), !1 ); }; })(this), enter: (function (a) { return function (b) { var c; if (a.isBeingDragged) return 1 !== (b.buttons || b.which) ? (c = a.events)[w].apply(c, arguments) : void 0; }; })(this), }; }), (j.prototype.addEvents = function () { var a; this.removeEvents(), (a = this.events), this.options.disableResize || this.win.bind(s, a[s]), this.iOSNativeScrolling || (this.slider.bind(l, a[g]), this.pane.bind(l, a[r]).bind("" + p + " " + f, a[x])), this.$content.bind("" + t + " " + p + " " + f + " " + v, a[t]); }), (j.prototype.removeEvents = function () { var a; (a = this.events), this.win.unbind(s, a[s]), this.iOSNativeScrolling || (this.slider.unbind(), this.pane.unbind()), this.$content.unbind("" + t + " " + p + " " + f + " " + v, a[t]); }), (j.prototype.generate = function () { var a, c, d, f, g, h, i; return ( (f = this.options), (h = f.paneClass), (i = f.sliderClass), (a = f.contentClass), (g = this.$el.children("." + h)).length || g.children("." + i).length || this.$el.append( '